package com.ltkj.baseplatform.mapper;

import com.ltkj.baseplatform.domain.ArtContent;
import com.ltkj.baseplatform.domain.bo.ArtContentQueryBo;
import com.ltkj.baseplatform.domain.vo.ArtContentVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 文章内容业务Mapper接口
 * 
 * @author liupf
 * @date 2023-08-28
 */
public interface ArtContentBusinessMapper
{
    /**
     * 将传入的文章数据放入回收站
     *
     * @param ids id集合
     * @return 结果
     */
    int recycle(Long[] ids);

    /**
     * 根据id集合查询文章列表
     *
     * @param ids 文章id集合
     * @return 文章管理-文章集合
     */
    List<ArtContent> selectArtContentListByIds(Long[] ids);

    /**
     * 查询文章管理-文章列表
     *
     * @param artContentQueryBo 文章管理-文章
     * @return 文章管理-文章集合
     */
    List<ArtContentVo> selectArtContentList(ArtContentQueryBo artContentQueryBo);

    /**
     * 查询文章管理-文章列表（把子栏目的数据也查询出来）
     *
     * @param artContentQueryBo 文章管理-文章
     * @return 文章管理-文章集合
     */
    List<ArtContentVo> selectSubChannelContentList(ArtContentQueryBo artContentQueryBo);

    /**
     * 查询文章内容（包含栏目名称）
     *
     * @param id 文章内容主键
     * @return 文章内容
     */
    ArtContentVo selectArtContentById(Long id);
    /**
     * 将传入的文章数据还原
     *
     * @param contentIds id集合
     * @return 结果
     */
    int revert(List<Long> contentIds);

    /**
     * 查询文章管理-文章列表(限制条数)
     *
     * @param artContentQueryBo 文章管理-文章
     * @return 文章管理-文章集合
     */
    List<ArtContentVo> selectArtContentListByLimitNum(ArtContentQueryBo artContentQueryBo);


    /**
     * 更新内容的浏览量+1
     *
     * @param id 内容id
     * @return 结果
     */
    int updateReadNum(Long id);
    /**
     * 更新内容的评论量
     *
     * @param id 内容id
     * @return 结果
     */
    int updateCommentNum(@Param("num") Integer num, @Param("id")Long id);
    /**
     * 更新内容的收藏量
     *
     * @param id 内容id
     * @return 结果
     */
    int updateCollectNum(@Param("num") Integer num, @Param("id")Long id);
    /**
     * 更新内容的点赞量
     *
     * @param id 内容id
     * @return 结果
     */
    int updateLikeNum(@Param("num") Integer num, @Param("id")Long id);
}
